package lessons6;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * DateFormat SimpleDateFormat 时间格式类
 */
public class lessons6_9 {
    public static void main(String[] args) {
        System.out.println("data "+System.currentTimeMillis());
        lessons6_9 myclass = new lessons6_9();
        //myclass.exampleDateFormat();
        //myclass.exampleDateFormat2();
        myclass.testSimpleDateFormat();
    }
    public void exampleDateFormat()
    {
        System.out.println("#### DateFormat 类的使用 ####");

        // 创建Date对象
		Date date = new Date();
		// Full格式的日期格式器对象
		DateFormat fullFormat = 
				DateFormat.getDateInstance(DateFormat.FULL);
		// Long格式的日期格式器对象
		DateFormat longFormat = 
				DateFormat.getDateInstance(DateFormat.LONG);
		// MEDIUM格式的日期/时间 格式器对象
		DateFormat mediumFormat = DateFormat.getDateTimeInstance(
				DateFormat.MEDIUM, DateFormat.MEDIUM);
		// SHORT格式的日期/时间格式器对象
		DateFormat shortFormat = DateFormat.getDateTimeInstance(
				DateFormat.SHORT, DateFormat.SHORT);

		// 下面打印格式化后的日期或者日期/时间
        //2022年10月25日星期二
		System.out.println("当前日期的完整格式为：" 
		                    + fullFormat.format(date));
        //2022年10月25日
		System.out.println("当前日期的长格式为：" 
		                    + longFormat.format(date));
        //2022年10月25日 下午12:01:07
		System.out.println("当前日期的普通格式为：" 
		                    + mediumFormat.format(date));
        //2022/10/25 下午12:01
		System.out.println("当前日期的短格式为：" 
		                    + shortFormat.format(date));

        System.out.println();

    }

    public void exampleDateFormat2()
    {
        System.out.println("#### DateFormat 类 字符串解析成Data ####");
        // 创建DateFormat对象
        DateFormat dt1 = DateFormat.getDateInstance(DateFormat.FULL);
        // 创建Long格式的DateFormat对象
        DateFormat dt2 = DateFormat.getDateInstance(DateFormat.LONG);
        // 定义两个日期格式的字符串
        String str1 = "2022年10月25日星期二";
        String str2 = "2022年10月25日";
        // 输出对应格式的字符串解析成Date对象后的结果

        try {
            System.out.println(dt1.parse(str1));
            System.out.println(dt2.parse(str2));
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
        System.out.println();
    }

    public void testSimpleDateFormat()
    {
        System.out.println("#### SimpleDateFormat 类  ####");

        /**
         * G -- 公元
         * yyyy --年
         * MM --月
         * dd --日
         * HH --时
         * mm -- 分
         * ss -- 秒
         * E -- 星期
         */
        // 创建一个SimpleDateFormat对象
		SimpleDateFormat sdf = new SimpleDateFormat(
            "Gyyyy年MM月dd日：今天是yyyy年的第D天，E"); 
        // 按SimpleDateFormat对象的日期模板格式化Date对象
        System.out.println(sdf.format(new Date()));

        SimpleDateFormat sdf2 = new SimpleDateFormat(
            "随便组合的时间 G - yyyy - MM - dd - HH - mm - ss - E"
        );
        System.out.println(sdf2.format(new Date()));

        System.out.println();
    }
}
